package qc.module.qms.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import qc.common.core.enums.ResourceStatusFlagEnum;
import qc.common.core.enums.qms.QmsDataValueAlarmJudgeMethodEnum;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * QmsAlarmDataRule
 *
 * @author QuCheng Tech
 * @since 2025/10/20
 */
@Data
@TableName("qms_alarm_data_rule")
public class QmsAlarmDataRule implements Serializable, Cloneable {
    /**
     * 规则ID
     */
    @TableId
    private String ruleid;
    /**
     * 规则名称
     */
    private String rulename;
    /**
     * 规则说明
     */
    private String description;
    /**
     * 判别方法类型;超限、突变、长期不变、数值不一致/相等、数值不为0、库水位
     */
    private QmsDataValueAlarmJudgeMethodEnum method;
    /**
     * 判别取数配置;判别需要多个点号数据时根据该配置获取其他点号数据，json格式配置
     */
    private String dataconfig;
    /**
     * 资源状态;启用、禁用、已删除
     */
    private ResourceStatusFlagEnum flag;
    /**
     * 起始有效时间;可以为空，从哪个时间点开始有效
     */
    private LocalDateTime begintm;
    /**
     * 截止有效时间;可以为空，到哪个时间点无效
     */
    private LocalDateTime endtm;
    /**
     * 每年起始有效时间;可以为空，每年固定从哪个时间点开始有效
     */
    private LocalDateTime repeatbegintm;
    /**
     * 每年截止有效时间;可以为空，每年固定到哪个时间点无效
     */
    private LocalDateTime repeatendtm;
    /**
     * 是否进行防误处理;进行防误处理时自动进行数据的修改
     */
    private Boolean errorproof;
    /**
     * 告警信息模板
     */
    private String alarmcontent;
    /**
     * 蓝色告警值配置;可能需要多个配置，如15分钟内变幅10cm；通过json方式配置，由每个判别方法自行进行解析处理；
     */
    private String alarmvalue4;
    /**
     * 黄色告警值配置
     */
    private String alarmvalue3;
    /**
     * 橙色告警值配置
     */
    private String alarmvalue2;
    /**
     * 红色告警值配置
     */
    private String alarmvalue1;
    /**
     * 是否触发取消告警;复归或平安报是否触发
     */
    private Boolean triggercancel;
    /**
     * 写入时间
     */
    private LocalDateTime intm;
}
